﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using EYSLibrary;
using System.Data.Entity;


namespace EYayincilikSistemi
{
    public partial class Editor : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            int editorId;
            
            if (!IsPostBack)
            {
                //if (Int32.TryParse(Session["editorId"].ToString(), out editorId))    
                //{
                //Kullanıcıyı alan arkadaş, editörün login olması ile Session["editorId"] açacaktır.
                    using (EYayincilikDBEntities entities = new EYayincilikDBEntities())
                    {
                        var gridIcerigi = from m in entities.Makale
                                          where m.Dergi.EditorId == 1
                                          select new
                                          {
                                              MakaleBaslik = m.Baslik,
                                              YazarAdi = (m.Kullanici.Ad + " " + m.Kullanici.Soyad),
                                              m.MakaleId
                                          };
                        EditorGridView.DataSource = gridIcerigi;
                        EditorGridView.DataBind();
                    }
                //}
            }
        }

        protected void EditorGridView_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            int rowIndex = int.Parse(e.CommandArgument.ToString());
            int makaleId = Int32.Parse(EditorGridView.DataKeys[rowIndex][0].ToString());
            labelMakaleId.Text = makaleId.ToString();
            using (EYayincilikDBEntities entities = new EYayincilikDBEntities())
            {
                var incelenecekMakale = from m in entities.Makale
                                        where m.MakaleId == makaleId
                                        select m;

                List<Makale> incelenecekMakaleler = incelenecekMakale.ToList<Makale>();
                if (incelenecekMakaleler.Count == 1)
                {
                    labelMakaleBasligi.Text = "Makale: " + incelenecekMakaleler[0].Baslik;
                    labelMetin.Text = incelenecekMakaleler[0].Metin;

                    radioKarar.Visible = true;
                    buttonYolla.Visible = true;
                }
            }


        }

        protected void buttonYolla_Click(object sender, EventArgs e)
        {
            int makaleId;
            Int32.TryParse(labelMakaleId.Text, out makaleId);
            using (EYayincilikDBEntities entities = new EYayincilikDBEntities())
            {
                var islenecekMakale = from m in entities.Makale
                                      where m.MakaleId == makaleId
                                      select m;
                Makale makale = islenecekMakale.FirstOrDefault<Makale>();
                if (radioKarar.SelectedIndex == 0)  //Onayla
                {
                    makale.MakaleDurum = 1;
                    entities.SaveChanges();
                    /*Database'imize yayımlanacak makaleler listesi koymayı unutmuşuz
                     * burada normalde, bu makale o listeye eklenecek ve yazara mail gönderilecekti*/
                }
                else if (radioKarar.SelectedIndex == 1) //Reddet
                {
                    makale.MakaleDurum = -1;
                    entities.SaveChanges();
                    //Burada yazara e-mail bildirimi gönderilecek
                }
                else if (radioKarar.SelectedIndex == 2) //Hakem Davet et
                {
                    makale.MakaleDurum = 3;
                    int hakemId = 1;                    //Burada hakem dropdown ile seçilecek
                    Davet d = new Davet();
                    d.Cevap = 0;
                    d.DergiId = makale.DergiId;
                    d.HakemId = hakemId;
                    d.MakaleId = makaleId;

                    entities.Davet.AddObject(d);
                    entities.SaveChanges();

                }
                else if (radioKarar.SelectedIndex == 3) // Düzeltmeye Gönder
                {
                    makale.MakaleDurum = 2;
                    entities.SaveChanges();
                    //Burada yazara e-mail bildirimi gönderilecek
                }
                
            }
        }

        protected void buttonDergiDüzenleme_Click(object sender, EventArgs e)
        {
            Response.Redirect("DergiDuzenle.aspx");
        }
    }
}